<?php
require_once "based.php";
require_once 'modelo.php';

class LoginCTRL
{
    private $db, $usuario;
    function __construct() 
    {
        $this->db = new BaseDatos(DBHOST, DBUSER, DBPASS, DBBASE);

    }
    public function comprobar($email, $clave, $setUsrObj=true)
    {
        $sql = "SELECT id, email, nombre, nombre_corto, abreviatura
                FROM usuarios 
                WHERE email = '".mysql_real_escape_string($email)."'
                  AND clave = '".mysql_real_escape_string($clave)."'";
        if(false === ($datos = $this->db->selectAsociativo($sql)))
        {
            if($setUsrObj)
                $this->intentoFallido($email);
            return false;
        }
        $this->intentoFallido($email, false);
        if($setUsrObj)
            $this->usuario = new Usuario(utf8_encode(stripslashes($datos[0]['nombre'])), stripslashes($datos[0]['email']), $datos[0]['id'], utf8_encode(stripslashes($datos[0]['nombre_corto'])),utf8_encode(stripslashes($datos[0]['abreviatura'])));
        return true;
    }
    private function intentoFallido($email, $fallo=true)
    {
        if($fallo)
            $sql = "UPDATE usuarios 
                SET login_fallidos = login_fallidos+1
                WHERE email = '".mysql_real_escape_string($email)."'";
        
        else
            $sql = "UPDATE usuarios 
                SET login_fallidos = 0
                WHERE email = '".mysql_real_escape_string($email)."'";
        $this->db->insertUpdate($sql);
    }
    public function loginRecaptcha($email)
    {
        $sql = "SELECT login_fallidos
                FROM usuarios 
                WHERE email = '".mysql_real_escape_string($email)."'";
        $datos = $this->db->selectAsociativo($sql);
        return $datos[0]['login_fallidos']>=3;
    }
            
    public function getUsuario() 
    {
        return $this->usuario;
    }
    
    public function cambiarClave($usuario, $nuevaClave)
    {
        $sql = "UPDATE usuarios 
                SET clave = '".mysql_real_escape_string($nuevaClave)."'
                WHERE email = '".mysql_real_escape_string($usuario->getEmail())."'";
        if(false === ($datos = $this->db->insertUpdate($sql)))
            return false;
        else
            return true;
    }

    public function __destruct() 
    {
        unset($this->db);
    }
}
?>
